package xing.repository.isv.suite;


import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import xing.domain.isv.suite.CorpApp;

/********************************
 * 文 件 名 :CorpAppRepository.java
 * 创 建 人：陈天龙
 * 日    期：2017/8/24
 * 描   述：企业应用数据层操作接口
 * 版 本 号：v1.0.0
 ********************************/
public interface CorpAppRepository extends JpaRepository<CorpApp,Long> {
    /**
     * 描    述：新增或更新CorpApp
     * 创 建 人：陈天龙
     * 日    期：2017/8/23
     * @param corpId
     * @param appId
     * @param agentId
     * @param agentName
     * @param logoUrl
     * @return int
     */
    @Modifying
    @Query(value = "insert into isv_corp_app (id,gmt_create,gmt_modified,corp_id,app_id,agent_id,agent_name,logo_url" +
            ")values(:id,now(),now(),:corpId,:appId,:agentId,:agentName,:logoUrl)" +
            "ON DUPLICATE KEY UPDATE gmt_modified=now(),agent_id=:agentId,agent_name=:agentName,logo_url=:logoUrl",nativeQuery = true)
    int saveOrUpdateCorpApp(@Param("id") Long id,@Param("corpId") String corpId,@Param("appId") Long appId,@Param("agentId") Long agentId,@Param("agentName") String agentName,@Param("logoUrl") String logoUrl);

    /**
    * @Description: 根据企业id删除微应用
    * @param: corpId
    * @Author: dustin
    * @Date: 2017-8-24
    */
    @Modifying
    @Query(value="delete from CorpApp c where c.corpId=?1")
    int deleteByCorpId(String corpId);

    /**
     * 描    述：获取CorpApp
     * 创 建 人：陈天龙
     * 日    期：2017/8/28
     * @param corpId
     * @param appId
     * @return CorpApp
     */
    CorpApp findByCorpIdAndAppId(String corpId,Long appId);
}
